Aula 21 - flextable2

Módulo 2: Trabalhando com dados

Carolina Musso

PROFESP, DEMSP, MS

Esta semana

Aula 19 - Unindo bases de dados

Funções join()

Aula 20 - Trabalhando com texto (strings)

O pacote stringR e RegEx

Aula 21 - Tabela

Mais sobre o pacote flextable: título e fontes

Leituras para aprofundamento

Dados de Hoje

  • Incrementando nosso código
 letalidade_Brasil_Italia <- dados_covid %>% 
  filter(Country=="Brazil"|Country=="Italy", 
         New_cases>0,
         !is.na(New_cases))%>% 
  separate(Date_reported, c("Ano", "Mês", "Dia"))%>% 
  mutate(Country=str_replace(Country, "Brazil", "Brasil"),
         Country=str_replace(Country, "Italy", "Itália"))%>% 
  mutate(letalidade_diaria = New_deaths/New_cases*100)%>% 
  group_by(Ano, Country) %>% 
  summarise(letalidade_media = mean(letalidade_diaria, na.rm = T), 
            desvio_padrao = sd(letalidade_diaria,
                               na.rm = T),
            Casos_maximo = max(New_cases,
                               na.rm = T),
            Obitos_maximo = max(New_deaths,
                                na.rm = T)) %>% 
  ungroup() %>% 
  mutate_if(is.numeric, ~format(., big.mark=".", decimal.mark=",", digits=2))
  

 letalidade_Brasil_Italia
# A tibble: 9 × 6
  Ano   Country letalidade_media desvio_padrao Casos_maximo Obitos_maximo
  <chr> <chr>   <chr>            <chr>         <chr>        <chr>        
1 2020  Brasil  3,26             1,87          "  326.751"  " 7.453"     
2 2020  Itália  7,52             7,50          "  242.062"  " 5.339"     
3 2021  Brasil  2,83             0,67          "  533.024"  "21.094"     
4 2021  Itália  1,87             1,14          "  257.579"  " 3.409"     
5 2022  Brasil  0,68             0,33          "1.283.024"  " 6.658"     
6 2022  Itália  0,28             0,13          "1.268.153"  " 2.628"     
7 2023  Brasil  0,75             0,49          "  206.944"  " 1.110"     
8 2023  Itália  0,80             0,30          "  132.328"  "   750"     
9 2024  Itália  2,56             0,53          "   21.665"  "   371"     

flextable

flextable(letalidade_Brasil_Italia)
Tab1

Editando com o que já sabemos

tab1 <- flextable( letalidade_Brasil_Italia) %>% 
  autofit() %>% 
  align(align="r", part="all") %>% 
  align(align="c", j=c(1,2),  part="all") %>% 
  bold(part="header") %>% 
  bold(j=c(1,2)) %>% 
  bg(bg="lightgrey", j=c(1,2), part="all") %>% 
  hline(i=c(2,4,6)) %>% 
  vline(j=2)
  
tab1

Tab2

Título e cabeçalho

  • set_header_labels()
tab1 %>% 
  set_header_labels( 
  Country="País", 
  letalidade_media="Letalidade Média Diária",
  desvio_padrao="Desvio Padrão",
  Casos_maximo="Máximo de casos em 24h", 
  Obitos_maximo="Máximo de óbitos em 24h")

Tab4

  • Quebrar a linha onde eu desejar: “\n”
tab2 <- tab1 %>% 
  set_header_labels( 
  Country="País", 
  letalidade_media="Letalidade Média Diária",
  desvio_padrao="Desvio\n Padrão",
  Casos_maximo="Máximo de casos em 24h", 
  Obitos_maximo="Máximo de óbitos em 24h")
 
tab2

Tab4

Cabeçalho Extra

  • add_header_row()
tab3 <- tab2 %>% 
  add_header_row(values = c("Tempo/Lugar", "Indicadores"),
                 colwidths = c(2,4))

tab3

Tab4

Título

  • set_caption
  • Cabeçalho YAML
    • output: officedown::rdocx_document
run_num <- run_autonum(seq_id = "tab", pre_label = "Tabela", 
                       post_label=". ", bkm = "anytable")

tab3 %>% 
set_caption("Título da tabela",
            autonum=run_num ) 

Tempo/Lugar

Indicadores

Ano

País

Letalidade Média Diária

Desvio
Padrão

Máximo de casos em 24h

Máximo de óbitos em 24h

2020

Brasil

3,26

1,87

326.751

7.453

2020

Itália

7,52

7,50

242.062

5.339

2021

Brasil

2,83

0,67

533.024

21.094

2021

Itália

1,87

1,14

257.579

3.409

2022

Brasil

0,68

0,33

1.283.024

6.658

2022

Itália

0,28

0,13

1.268.153

2.628

2023

Brasil

0,75

0,49

206.944

1.110

2023

Itália

0,80

0,30

132.328

750

2024

Itália

2,56

0,53

21.665

371

Fonte

  • A fonte deve estar instalada no seu computador!
tab3 %>% font(part = "all", fontname = "Verdana")

Tab4

  • Com uma fonte nova
tab3 %>% font(part = "all", fontname = "Poppins")

Tab4

Até mais, pessoal!